package fast.data;

public enum Stat {
	str(0, 4, "Strength", "str", "str", "Strength", "", "str", "strength"),
	agi(1, 3, "Agility", "agi", "agi", "Agility", "", "agi", "agility"),
	sta(2, 7, "Stamina", "sta", "sta", "Stamina", "", "sta", "stamina"),
	intt(3, 5, "Intellect", "int", "int", "Intellect", "", "int", "intellect"),
	spi(4, 6, "Spirit", "spirit", "spirit", "Spirit", "spirit_rating", "spi", "spirit"),
    hit(5, 31, "Hit", "hitrtng", "hitRating", "Hit Rating", "hit_rating", "white_hit", "hit"),
    mst(6, 49, "Mastery", "mastrtng", "masteryRating", "Mastery Rating", "mastery_rating", "mastery", "mastery"),
    hst(7, 36, "Haste", "hastertng", "hasteRating", "Haste Rating", "haste_rating", "haste", "haste"),
    exp(8, 37, "Expertise", "exprtng", "expertiseRating", "Expertise Rating", "expertise_rating", "exp", "expertise"),
    cri(9, 32, "Crit", "critstrkrtng", "critRating", "Crit Rating", "crit_rating", "crit", "critical strike"),
	ap(10, 38, "Attack Power", "ap", "ap", "Attack Power", "", "ap", "attack power"),
	sp(11, 45, "Spell Power", "splpwr", "sp", "Spell Power", "", "sp", "spell power"),
	dodge(11, 13, "Dodge", "parry", "parry", "Dodge Rating", "dodge_rating", "dodge", "dodge"), // TODO fix dodge/parry names
	parry(12, 14, "Parry", "parry", "parry", "Parry Rating", "parry_rating", "parry", "parry"),
	pvppower(13, 57, "PvP Power", "pvppower", "pvppower", "PvP Power", "", "pvp_power", "pvp power"),
	res(14, 35, "PvP Resilience", "pvpres", "pvpres", "PvP Resilience", "", "res", "pvp resilience");

    public static final Stat[] possibleStats = new Stat[] {
        str, agi, sta, intt, spi, hit, mst, hst, exp, cri, ap, sp, dodge, parry, pvppower, res
    };
    public static final Stat[] possibleReforgeStats = new Stat[] {
    	spi, hit, mst, hst, exp, cri, dodge, parry
    };
    public static final Stat[] possiblePrimaryStats = new Stat[] {
    	str, agi, intt
    };
    private final int index;
    private final int id;
    private final String name;
    private final String wowheadName;
    private final String blizzardName;
    private final String reforgeName;
    private final String otherReforgeName;
    private final String epName;
    private final String socketBonusName;

    private Stat(int index, int id, String name, String wowheadName, String blizzardName, String reforgeName, String otherReforgeName, String epName, String socketBonusName) {
        this.index = index;
        this.id = id;
        this.name = name;
        this.wowheadName = wowheadName;
        this.blizzardName = blizzardName;
        this.reforgeName = reforgeName;
        this.otherReforgeName = otherReforgeName;
        this.epName = epName;
        this.socketBonusName = socketBonusName;
    }

    public int getIndex() {
        return index;
    }

    public String getName() {
        return name;
    }

    public String getWowheadName() {
        return wowheadName;
    }

    public String getBlizzardName() {
        return blizzardName;
    }
    
    public String getReforgeName() {
    	return reforgeName;
    }
    
    public String getOtherReforgeName() {
    	return otherReforgeName;
    }

	public Object getEpName() {
		return epName;
	}

	public String getSocketBonusName() {
		return socketBonusName;
	}

	public int getId() {
		return id;
	}
}
